package com.shujia.wyh.day20;

public class Student3 implements Comparable<Student3> {
    private String name;
    private int age;

    public Student3() {
    }

    public Student3(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student3{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public int compareTo(Student3 o) {
//        return 0;
//        return 1;
//        return -1;
        //这里的返回值不是一概而论的，而是根据题目的意思分析得出
        //现在我们要做的是，当对象中的成员变量值一样的话，就说明是同一个对象，就不添加到集合中
        //比较姓名是否一样
//        int i = this.name.compareTo(o.name);
//
//        //隐含条件
//        //当姓名一样的时候，年龄不一定一样
//        int i2 = (i == 0) ? o.age - this.age : i;

        //当我们的题目发生改变的时候，年龄比较作为了主要条件
        //应该先比较年龄
        int i = o.age - this.age;
        //次要条件，当年龄一样的时候，比较姓名
        int i2 = (i == 0) ? this.name.compareTo(o.name) : i;

        return i2;

    }
}
